home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt3sp1.arc / GETCONFI.PAS < prev    next >
Pascal/Delphi Source File  |  1985-06-21  |  4KB  |  85 lines

  1. (*--------------------------------------------------------------------------*)
  2. (*      Get_Config_File_Line --- Get one parameter line from config file    *)
  3. (*--------------------------------------------------------------------------*)
  4.  
  5. FUNCTION Get_Config_File_Line(  VAR Param_Num:  INTEGER;
  6.                                 VAR Param_Str:  AnyStr;
  7.                                 VAR Param_Ival: INTEGER;
  8.                                 VAR Param_Rval: REAL ) : BOOLEAN;
  9.  
  10. (*--------------------------------------------------------------------------*)
  11. (*                                                                          *)
  12. (*     Function:  Get_Config_File_Line                                      *)
  13. (*                                                                          *)
  14. (*     Purpose:   Reads and interprets one line of configuration file       *)
  15. (*                                                                          *)
  16. (*     Calling Sequence:                                                    *)
  17. (*                                                                          *)
  18. (*        QGot := Get_Config_File_Line(  VAR Param_Num:  INTEGER;           *)
  19. (*                                       VAR Param_Str:  AnyStr;            *)
  20. (*                                       VAR Param_Ival: INTEGER;           *)
  21. (*                                       VAR Param_Rval: REAL ) : BOOLEAN;  *)
  22. (*                                                                          *)
  23. (*           Param_Num  --- parameter number of this line                   *)
  24. (*           Param_Str  --- string value of parameter                       *)
  25. (*           Param_Ival --- Integer value of parameter                      *)
  26. (*           Param_Rval --- Real value of parameter                         *)
  27. (*                                                                          *)
  28. (*           Qgot       --- TRUE if configuration line returned;            *)
  29. (*                          FALSE if end-of-file encountered on             *)
  30. (*                          configuration file.                             *)
  31. (*                                                                          *)
  32. (*     Calls:  None                                                         *)
  33. (*                                                                          *)
  34. (*--------------------------------------------------------------------------*)
  35.  
  36. VAR
  37.    I:      INTEGER;
  38.    S:      AnyStr;
  39.    PName:  STRING[2];
  40.    R:      REAL
  41.  
  42. BEGIN (* Get_Config_File_Line *)
  43.                                    (* Initialize parameter values *)
  44.    Param_Num  := 0;
  45.    Param_Str  := '';
  46.    Param_Ival := 0;
  47.    Param_Rval := 0;
  48.  
  49.    IF NOT EOF( Config_File ) THEN
  50.       BEGIN
  51.  
  52.          Get_Config_File_Line := TRUE;
  53.  
  54.                                    (* Indicate line from configuration file *)
  55.          READLN( Config_File , S );
  56.  
  57.          S         := S + '    ';
  58.          I         := 0;
  59.          PName     := UpCase( S[1] ) + UpCase( S[2] );
  60.          Param_Str := TrimString( COPY( S, 4, LENGTH( S ) - 3 ) );
  61.  
  62.                                    (* Search for parameter *)
  63.          REPEAT
  64.             I := I + 1;
  65.          UNTIL ( I > Max_Params ) OR ( PName = Param_Name[I] );
  66.  
  67.                                    (* If found, convert to numeric if *)
  68.                                    (* appropriate                     *)
  69.          IF I <= Max_Params THEN
  70.             BEGIN
  71.                Param_Num := I;
  72.                FOR I := 1 TO LENGTH( Param_Str ) DO
  73.                   IF Param_Str[I] IN ['0'..'9'] THEN
  74.                      Param_Ival := Param_Ival * 10 + ORD( Param_Str[I] ) -
  75.                                                      ORD( '0' );
  76.                Param_Rval := Param_Ival;
  77.             END;
  78.  
  79.       END
  80.  
  81.    ELSE
  82.       Get_Config_File_Line := FALSE;
  83.  
  84. END   (* Get_Config_File_Line *);
  85.